package top.go2do.auth.business.app.enumeration;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description
 * @Author xingyj
 * @CreateTime 2025/6/12 16:24
 */
public enum PermType {
    SYSTEM(0, "系统类型"),
    APPLICATION(1, "应用类型"),
    USER(2, "用户类型"),
    ;

    /**
     * 操作对象的类型，可以用表名
     */
    private final Integer value;

    /**
     * 操作类型：create、update、delete
     */
    private final String name;

    PermType(Integer value, String name) {
        this.name = name;
        this.value = value;
    }

    public Integer getValue() {
        return value;
    }

    public String getName() {
        return name;
    }

    // pullerName缓存
    private static final Map<Integer, String> TYPE_MAP = new HashMap<>();

    static {
        // 初始化缓存
        for (PermType permType : values()) {
            TYPE_MAP.put(permType.getValue(), permType.getName());
        }
    }

    public static String getTypeName(int type) {
        return TYPE_MAP.get(type);
    }

    public static boolean isValid(int type) {
        return TYPE_MAP.containsKey(type);
    }


}
